package guhong.play.commandsystem.job.system.job;

import cn.hutool.core.util.StrUtil;
import guhong.play.commandsystem.CommandManager;
import guhong.play.commandsystem.dto.entity.Command;
import guhong.play.commandsystem.dto.entity.CommandConfig;
import guhong.play.commandsystem.dto.entity.SystemConfig;
import guhong.play.commandsystem.job.CommandJob;
import guhong.play.commandsystem.job.system.SystemCommandConfig;
import guhong.play.commandsystem.util.print.PrintUtil;
import lombok.Data;

/**
 * 默认命令切换
 * @author : 李双凯
 * @date : 2019-11-20 22:32
 **/
@Data
public class DefaultCommandSwitchJob implements CommandJob {

    /**
     * 获得命令的配置
     *
     * @return 返回命令的配置
     */
    @Override
    public CommandConfig getCommandConfig() {
        SystemCommandConfig commandConfig = new SystemCommandConfig("dc", "切换默认命令");
        commandConfig.setIntroduce("dc（default command）。直接输入该命令可以查询当前的命令模式，使用[dc 命令模式]切换当前的默认命令");
        return commandConfig;
    }

    /**
     * 开始执行任务
     *
     * @param command 命令对象
     */
    @Override
    public void run(Command command) {
        String value = command.getFirstValue();
        if (StrUtil.isBlank(value)) {
            PrintUtil.println("当前默认命令: " + CommandManager.getSystemConfig().getDefaultCommand());
        } else {
            SystemConfig systemConfig = CommandManager.getSystemConfig();
            systemConfig.setDefaultCommand(value);
            systemConfig.sync();
            PrintUtil.println("切换完成。当前默认命令：" + value);
        }

    }
}
